package com.gomore.opple.module.login;


import com.gomore.opple.BasePresenter;
import com.gomore.opple.BaseView;
import com.gomore.opple.web.cgform.app.entity.TOAppversionEntity;

public interface LoginContract {

    interface View extends BaseView<Presenter> {

        /**
         * 显示进度条
         */
        void showProgressDialog();

        /**
         * 隐藏进度条
         */
        void hideProgressDialog();

        /**
         * 展示消息
         *
         * @param msg 消息
         */
        void showMessage(String msg);

        /**
         * 跳转到主界面
         */
        void gotoMainActivity();

        /**
         * 展示消息
         *
         * @param msgId 消息id
         */
        void showMessage(int msgId);

        /**
         * 显示用户名和密码
         *
         * @param userName
         * @param password
         */
        void initView(String userName, String password);

        /**
         * 展示版本更新对话框
         *
         * @param version 服务器版本信息
         */
        void showUpdateDialog(TOAppversionEntity version);

        /**
         * 跳转到登陆页面
         */
        void goToLogin();

    }

    interface Presenter extends BasePresenter {

        /**
         * 登录
         *
         * @param username 用户名
         * @param password 密码
         */
        void login(String username, String password);

        /**
         * 检查更新
         *
         * @param apptype app类型
         * @param version 当前app的版本号
         */
        void checkUpdate(String apptype, String version);

        /**
         * 准备初始化数据
         */
        void prepareInitData();

        /**
         * 发送验证码
         *
         * @param mobilephone
         * @param username
         */
        void sendCode(String mobilephone, String username);

        /**
         * @param username
         * @param smsCode
         * @param newPassword
         */
        void resetPassword(String username, String smsCode, String newPassword);
    }
}
